//
//  LoginViewModel.swift
//  MovieApp
//
//  Created by SuPeiSen on 2020/11/27.
//

import Foundation
import RxSwift
import RxCocoa

//class LoginViewModel {
//
//    // 输入
//    let userNameValid: Observable<Bool>
//    let passwordValid: Observable<Bool>
//    let everythingValid: Observable<Bool>
//    let inputViewIsHiddenValid: Observable<Bool>
//
//    // 输出
//    init(
//        userName: Observable<String>,
//        password: Observable<String>,
//        inputViewIsHidden: Observable<Bool>
//    ) {
//        userNameValid = userName.map {
//            $0.count >= 8
//        }.share(replay: 1)
//
//        passwordValid = password.map {
//            $0.count >= 8
//        }.share(replay: 1)
//
//        inputViewIsHiddenValid = inputViewIsHidden.map {$0}
//            .share(replay: 1)
//
//        everythingValid = Observable.combineLatest(userNameValid, passwordValid, inputViewIsHiddenValid) {
//            // 不可以点击时
//            appPrint($2, msg: "$2")
//            if($2) {
//                return true
//            }
//            return $0 && $1
//        }.share(replay: 1)
//
//    }
//}



class LoginViewModel {
    
    public var buttonIsEnabled : PublishSubject<Bool> = PublishSubject()
    
    // 输入
    let userNameValid: Observable<String>
    let passwordValid: Observable<String>
    let everythingValid: Observable<Bool>
    
    // 输出
    init(
        userName: Observable<String>,
        password: Observable<String>
    ) {
        userNameValid = userName

        passwordValid = password

        everythingValid = Observable.combineLatest(userNameValid, passwordValid) {$0.count>=8 && $1.count>=8}
            .share(replay: 1)
    }
    
    
}
